import { reqSearchInfo } from "@/api";

const state = {
  searchInfo: {}
}

const mutations = {
  SAVE_SEARCHINFO(state, searchInfo) {
    state.searchInfo = searchInfo;
  }
}

const actions = {
  async getSearchInfo({ commit }, data) {

    // 判断当前请求是不是翻页
    // data.isPaging 是true代表翻页,取反不会进入if逻辑
    // data.isPaging 不是true代表不是翻页,取反会进入到if逻辑,此时重置页码为1
    if (!data.isPaging) {
      data.pageNo = 1;
    }
    delete data.isPaging
    // 干掉这个属性的原因有两个:
    // 1. 发请求的接口没要求带着个属性
    // 2. 当下一次点击的时候,需要重新赋值,重新判断
    //      如果不删除的话,下次发请求直接携带的就是上一次存的 isPaging 值


    let result = await reqSearchInfo(data);
    if (result && result.code === 200) {
      commit('SAVE_SEARCHINFO', result.data)
    } else {
      console.error('获取搜索页数据失败')
    }
  }
}
const getters = {
  // 品牌
  trademarkList(state) {
    return state.searchInfo.trademarkList || [] // 兼容一下,防止假报错
  },
  // 平台属性
  attrsList(state) {
    return state.searchInfo.attrsList || [] // 兼容一下,防止假报错
  },
  // 商品列表
  goodsList(state) {
    return state.searchInfo.goodsList || [] // 兼容一下,防止假报错
  },
  // 总条数
  total(state) {
    return state.searchInfo.total || 0 // 兼容一下,防止假报错
  }
}

export default {
  namespaced: true, // 开启命名空间
  state,
  mutations,
  actions,
  getters,
}
